const arr = [3,2,4,5,1]
function selectionSort(arr){
    const len = arr.length; //获取数组长度
    let minIndex=0
    for(let i=0;i<len-1;i++){ //外层循环控制比较的轮数
        minIndex=i; //假设最小值的索引为i
       //获取最小值的索引
       const currentMin=getMin(minIndex,len-1,arr)
        if(minIndex!==currentMin){ //如果最小值的索引不等于i，则交换最小值和i位置的值
            [arr[i],arr[currentMin]]=[arr[currentMin],arr[i]]; //交换最小值和i位置的值
        }
    
    }   
    return arr; //返回排序后的数组

}
function getMin(i,j,arr){
    let min = Infinity; //初始化最小值为无穷大
    let o=0;
    for(let k=i;k<=j;k++){ //遍历数组，找到最小值
        if(arr[k]<min){ //如果当前元素小于最小值，则更新最小值
            min=arr[k]; //更新最小值
            o=k;
        }
    }
    return o; //返回最小值
    
}
console.log(selectionSort(arr)); //输出排序后的数组